import axios from 'axios'
import store from '@/store'
import router from '@/router'
import { Message } from 'element-ui'

const myAxios = axios.create({
  baseURL: 'http://big-event-vue-api-t.itheima.net'
})

// 请求拦截器
myAxios.interceptors.request.use(function (config) {
  if (store.state.token) {
    config.headers.Authorization = store.state.token
  }
  return config
}, function (err) {
  return Promise.reject(err)
})

// 响应拦截器
myAxios.interceptors.response.use(function (response) {
  return response
}, function (err) {
  if (err.response.status === 401) {
    // 无效的 token
    // 把 Vuex 中的 token 重置为空，并跳转到登录页面
    store.commit('updateToken', '')
    router.push('/login')
    Message.error('身份过期请重新登录！')
  }
  return Promise.reject(err)
})
// 导出基地址
export const baseURL = 'http://big-event-vue-api-t.itheima.net'
// 导出自定义的axios方法, 供外面调用传参发请求
export default myAxios
